package com.sf.iisp.bind.dao;

import java.util.List;

import com.sf.iisp.bind.domain.BindAll;
import com.sf.iisp.bind.domain.BindingRecord;
import com.sf.novatar.base.dao.IPage;
import com.sf.novatar.base.domain.RequestParams;

/**
 * Created by qi on 16-7-6.
 */
public interface IBindingDao {

    /**
     * 根据虚拟号码和电话号码，查询绑定记录。
     * 例如：虚拟号码9533801 和号码 A，B绑定，B,C绑定就不能绑定9533801，
     * 那么号码   A,D也不能绑定9533801,但是C,D就可以绑定。
     *
     * @param virtualNo    虚拟号码
     * @param courierPhone 　电话
     *                     ＠param customerPhone 电话
     * @return
     */
    public BindingRecord getByVirtualNoAndPhone(String virtualNo, String courierPhone, String customerPhone);

    /**
     * 根据虚拟号码和电话号码 以及状态查询绑定记录。
     * 查询收派员电话和客户电话 是否是  已绑定或未绑定状态。
     *
     * @param stateFlag    绑定状态
     * @param courierPhone 　电话
     *                     ＠param customerPhone 电话
     * @return
     */
    public BindingRecord findBindRecordByPhone(String stateFlag, String courierPhone, String customerPhone);

    public BindingRecord findBindRerordByTransId(String transId);

    /**
     * 保存绑定记录
     *
     * @param bindingRecord 绑定信息
     */
    public void saveBindingRecord(BindingRecord bindingRecord);

    /**
     * 根据虚拟账号状态查询已绑定或未绑定总数
     *
     * @param state 状态
     * @return 统计数
     */
    public int getBindCount(String state);

    /**
     * 根据状态取出 已绑定或未绑定所有数据
     *
     * @param state
     * @return
     */
    public List<BindingRecord> getBindRecord(String state);

    /**
     * 更新绑定记录
     *
     * @param bindingRecord 绑定信息
     */
    public void updateSaveBindRecord(BindingRecord bindingRecord);


    /**
     * 根据条件分页查询
     *
     * @param queryParam
     * @return
     */
    IPage<BindingRecord> findPageBindingRecord(RequestParams queryParam);


    /**
     * 根据id查询绑定记录
     *
     * @param state
     * @return
     */
    public BindingRecord loadById(String id);

}







